package main

import "fmt"

// 主函数
func main() {
	// 调用min1函数，传入几个整数参数，找出最小值
	x := min1(1, 3, 2, 0)
	fmt.Printf("The minimum is: %d\n", x)

	// 初始化一个整数切片
	slice := []int{7, 9, 3, 5, 1}
	// 使用切片展开方式调用min1函数，找出切片中的最小值
	x = min1(slice...)
	fmt.Printf("The minimum in the slice is: %d", x)
}

// min1函数用于找出一系列整数中的最小值
// 参数s是一个整数可变参数，表示待比较的整数序列
// 返回值是这些整数中的最小值
func min1(s ...int) int {
	// 如果传入的整数序列为空，则返回0
	if len(s) == 0 {
		return 0
	}
	// 初始化最小值为序列的第一个元素
	min1 := s[0]
	// 遍历整数序列，找出最小值
	for _, v := range s {
		// 如果当前元素小于当前最小值，则更新最小值
		if v < min1 {
			min1 = v
		}
	}
	// 返回找到的最小值
	return min1
}
